package pers.bc.utils.spring;

/**
 * 
 ** Springboot应用开发:工具类整理
 * @qualiFild pers.bc.utils.spring.SpringUtil.java<br>
 * @author：LiBencheng<br>
 * @date Created on 2000年1月1日<br>
 * @version 1.0<br>
 */
public class SpringUtil
{
    /**
     * 传统的做法是某个类实现Serializable接口，然后重新它的writeObject和readObject方法。<br>
     * 但如果使用org.springframework.util包下的SerializationUtils工具类，能更轻松实现序列化和反序列化功能。
     */
    public static org.springframework.util.SerializationUtils SerializationUtil;
    public static org.springframework.http.HttpStatus HttpStatu;
    public static org.springframework.web.util.HtmlUtils HtmlUtil;
    
    /**
     * 有时候，为了安全考虑，需要将参数只用base64编码。<br>
     * 这时就能直接使用org.springframework.util包下的Base64Utils工具类。<br>
     * 它里面包含：encode和decode方法，用于对数据进行编码和解码。
     */
    public static org.springframework.util.Base64Utils Base64Util;
    
    /**
     * 1. BeanUtils <br>
     * 类路径：org.springframework.beans.BeanUtils<br>
     * 用途：提供操作JavaBean属性的便利方法，常用于复制同名属性从一个bean到另一个bean。<br>
     * 主要方法：<br>
     * copyProperties(Object source, Object target)：从源对象复制属性到目标对象，忽略不同数据类型的属性。<br>
     * instantiateClass(Class<T> clazz)：使用其无参构造器实例化一个类。<br>
     */
    public static org.springframework.beans.BeanUtils BeanUtil;
    
    /**
     * 2. CollectionUtils <br>
     * 类路径：org.springframework.util.CollectionUtils <br>
     * 用途：提供各种集合操作的工具方法。 <br>
     * 主要方法： <br>
     * isEmpty(Collection<?> collection)：检查集合是否为空或null。 <br>
     * mergeArrayIntoCollection(Object array, Collection<Object> collection)：将数组中的元素合并到集合中。 <br>
     * findValueOfType(Collection<?> collection, Class<?> type)：在集合中查找指定类型的元素。 <br>
     */
    public static org.springframework.util.CollectionUtils CollectionUtil;
    
    /**
     * 3. StringUtils <br>
     * 类路径：org.springframework.util.StringUtils <br>
     * 用途：提供各种字符串处理的工具方法。<br>
     * 主要方法：<br>
     * hasText(String str)：检查字符串是否包含非空白字符。<br>
     * commaDelimitedListToStringArray(String str)：将逗号分隔的字符串转换为字符串数组。<br>
     * split(String toSplit, String delimiter)：分割字符串但不使用正则表达式。<br>
     */
    public static org.springframework.util.StringUtils StringUtil;
    
    /**
     * 4. ObjectUtils <br>
     * 类路径：org.springframework.util.ObjectUtils <br>
     * 用途：提供各种对象操作的工具方法。 <br>
     * 主要方法： <br>
     * isEmpty(Object obj)：检查对象、数组是否为空或null。 <br>
     * nullSafeEquals(Object o1, Object o2)：null安全的比较两个对象是否相等。 <br>
     */
    public static org.springframework.util.ObjectUtils ObjectUtil;
    
    /**
     * 5. ReflectionUtils <br>
     * 类路径：org.springframework.util.ReflectionUtils <br>
     * 用途：提供反射相关的工具方法，简化对Java反射API的使用。 <br>
     * 主要方法： <br>
     * doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc)：对指定类的每个字段执行给定的回调。 <br>
     * findMethod(Class<?> clazz, String name, Class<?>... paramTypes)：在指定类中查找方法。
     */
    public static org.springframework.util.ReflectionUtils ReflectionUtil;
    
    /**
     * 6. ClassUtils <br>
     * 类路径：org.springframework.util.ClassUtils <br>
     * 用途：提供与类和类加载器相关的工具方法。 <br>
     * 主要方法： <br>
     * getDefaultClassLoader()：获取默认类加载器。 <br>
     * isPresent(String className, ClassLoader classLoader)：检查给定名称的类是否存在。
     */
    public static org.springframework.util.ClassUtils ClassUtil;
    
    /**
     * 7. AopUtils <br>
     * 类路径：org.springframework.aop.support.AopUtils <br>
     * 用途：提供与面向切面编程相关的工具方法。 <br>
     * 主要方法： <br>
     * isAopProxy(Object obj)：检查给定对象是否为AOP代理。 <br>
     * getTargetClass(Object candidate)：获取代理对象背后的目标类。
     */
    public static org.springframework.aop.support.AopUtils AopUtil;
    
    /**
     * 8. PropertyAccessorUtils <br>
     * 类路径：org.springframework.beans.PropertyAccessorUtils <br>
     * 用途：提供属性访问器相关的工具方法。 <br>
     * 主要方法： <br>
     * getPropertyAccessorName(String propertyName)：从复合属性名中获取最终的属性访问器名。 <br>
     */
    public static org.springframework.beans.PropertyAccessorUtils PropertyAccessorUtil;
    
    /**
     * 9. FileCopyUtils <br>
     * 类路径：org.springframework.util.FileCopyUtils <br>
     * 用途：提供文件复制相关的工具方法。 <br>
     * 主要方法： <br>
     * copy(byte[] in, OutputStream out)：将字节数组复制到输出流。 <br>
     * copy(File in, File out)：将一个文件内容复制到另一个文件。
     */
    public static org.springframework.util.FileCopyUtils FileCopyUtil;
    
    /**
     * 10. ResourceUtils <br>
     * 类路径：org.springframework.util.ResourceUtils <br>
     * 用途：识别资源加载的工具类，帮助加载类路径或者文件系统内的资源文件。 <br>
     * 主要方法： <br>
     * getFile(String resourceLocation)：根据资源路径获取文件。 <br>
     * getURL(String resourceLocation)：根据资源路径获取URL。
     */
    public static org.springframework.util.ResourceUtils ResourceUtil;
    
    /**
     * 11. TransactionSynchronizationManager <br>
     * 类路径：org.springframework.transaction.support.TransactionSynchronizationManager <br>
     * 用途：用于事务同步，管理资源和事务同步相关的回调。 <br>
     * 主要方法： <br>
     * bindResource(Object key, Object value)：绑定资源到当前事务。 <br>
     * getResource(Object key)：获取绑定到当前事务的资源。
     */
    public static org.springframework.transaction.support.TransactionSynchronizationManager TransactionSynchronizationManager;
    
    /**
     * 12. WebUtils <br>
     * 类路径：org.springframework.web.util.WebUtils <br>
     * 用途：为Web应用程序提供工具方法。 <br>
     * 主要方法： <br>
     * getRealPath(ServletContext servletContext, String path)：获取相对于Web应用根目录的真实路径。 <br>
     * findParameterValue(Map<String, ?> params, String paramName)：在参数Map中查找指定的参数值。
     */
    public static org.springframework.web.util.WebUtils WebUtil;
    
    
    
}
